package loveappservice.service.impl;


import loveappservice.dao.User_dao;
import loveappservice.dao.impl.User_dao_impl;
import loveappservice.domain.*;
import loveappservice.service.User_service;
import loveappservice.util.QiniuUtil;

import java.util.ArrayList;
import java.util.List;

public class User_service_impl implements User_service {
    User_dao dao = new User_dao_impl();
    QiniuUtil qiniuUtil =new QiniuUtil();

    /*查询一个用户信息*/
    @Override
    public Users finOneUser(int user_id) {
        return dao.finOneUser(user_id);
    }

    /*查询了所有纪念日*/
    @Override
    public List<Comm> allComm() {
        return dao.allComm();
    }

    /*新增一个纪念日*/
    @Override
    public int addComm(Comm comm) {
        if (comm.getComm_name()==""){
            System.out.println("用户名为空");
            return 0;

        }
        /*查询该纪念日是否存在*/
        int commExist = dao.selectCommExist(comm.getComm_name());
        if (commExist== 0)
        {
            System.out.println("纪念日已存在");
            return 3;
        }else {
            /*新增一个纪念日信息*/
            int req = dao.addComm(comm);
            return req;
        }

    }
    /*查询一个纪念日的信息*/
    @Override
    public Comm findOneComm(int comm_id) {
        return dao.findOneComm(comm_id);
    }

    /*修改纪念日*/
    @Override
    public int amendComm(Comm comm) {
        if (comm.getComm_name()==null)
        {
            return 0;
        }else {
            return dao.amendComm(comm);
        }


    }
    /*删除一个纪念日*/
    @Override
    public boolean deleComm(int comm_id) {
        return dao.deleComm(comm_id);
    }

    /*查询所有相册*/
    @Override
    public List<Images> selectImages() {
        return dao.selectImages();
    }

    /*根据相册id查询该相册所有分组还有所有图片*/
    @Override
    public List<Img_group> selectImg_group(int images_id) {
        return dao.selectImg_group(images_id);
    }


    /*根据分组id查询所有照片*/
    @Override
    public List<Img> selcetImg(int img_group_id) {
        return dao.selcetImg(img_group_id);
    }

    /*新增一个相册*/
    @Override
    public int addImages(String images_name) {
        boolean res = dao.images_Exist(images_name);
        if (res)
        {
            return dao.addImages(images_name);
        }else {
            return 3;
        }
    }

    /*删除一个相册*/
    @Override
    public boolean deleteImages(int images_id) {
        return dao.deleteImages(images_id);
    }


    /*新增一个照片分组*/
    @Override
    public int addImgGroup(Img_group img_group) {
        return dao.addImgGroup(img_group);
    }

    /*查询相册名称*/
    @Override
    public String selectImages_name(int images_id) {
        return dao.selectImages_name(images_id);
    }

    /*新增一张照片*/
    @Override
    public int addImg(int images_id, int img_group_id, String img_url) {
        /*更新相册封面*/
        dao.upimages(images_id,img_url);

        /*新增一张照片*/
        int res = dao.addImg(img_group_id,img_url);
        return res;
    }

    /*删除一个相册并删除里面的所有照片*/
    @Override
    public boolean deleteimg_Group(int img_group_id) {
        if (dao.deleteGroup_img(img_group_id)){
            return dao.deleteGroup(img_group_id);
        }else {
            return false;
        }

    }

    /*删除七牛云上的照片*/
    @Override
    public boolean deleteQiniuImg(int img_group_id) {
        /*查询一个分组的所有照片*/
        List<Img> imgs = dao.selcetImg(img_group_id);

        for (int i=0;i<imgs.size();i++){
            qiniuUtil.delectFile(imgs.get(i).getImg_url().substring(21));
        }
        return true;
    }

    /*跟新相册总数*/
    @Override
    public boolean upImg_total(int images_id) {
        /*查询相册内的照片总数*/
        int total = dao.selectImgTotal(images_id);

        /*修改相册的总数属性*/
        return dao.upImg_total(total,images_id);
    }

    /*更新相册封面*/
    @Override
    public boolean upImagesCoverUrl(int images_id) {
        /*查询一个相册第一张照片的地址*/
        String images_cover_url = dao.firstImgUrl(images_id);
        /*设置封面*/

        return dao.upimages(images_id,images_cover_url);
    }

    /*通过openid查询是否登录*/
    @Override
    public String openidLogin(String openid) {
        String username = dao.openidLogin(openid);
        return username;
    }

    /*通过用户名密码登录*/
    @Override
    public String userlogin(String username, String password) {
        return dao.userlogin(username,password);
    }

}
